﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
using Fatec.ControleEstoque.Attributes;
using Fatec.ControleEstoque.Attributes.Security;
using System.Data;

namespace Fatec.ControleEstoque.Data.Model
{
    [Security(Role = "Produtos", Action = "All")]
    [MetadataType(typeof(ProdutosMetadata))]
    [Description("Relação de todos os produtos cadastrados no estoque.")]
    public partial class Produtos : IValidatable
    {
        public class ProdutosMetadata
        {
            [DisplayName("Código")]
            [HideColumnIn(PageTemplate.Edit, PageTemplate.Insert)]
            public object Id { get; set; }

            public object Nome { get; set; }

            public object Unidade { get; set; }

            [DisplayName("Série")]
            public object Serie { get; set; }

            public object Marca { get; set; }

            public object Categoria { get; set; }

            [DisplayName("Estoque Mínimo")]
            public object Estoque_Minimo { get; set; }

            [DisplayName("Observação")]
            public object Obs { get; set; }

            [DisplayName("Data de Cadastro")]
            [DisplayFormat(DataFormatString="{0:dd/MM/yyyy}")]
            [HideColumnIn(PageTemplate.Edit, PageTemplate.Insert)]
            public object Dt_Cadastro { get; set; }

            [ScaffoldColumn(false)]
            public object Estoque { get; set; }

            [ScaffoldColumn(false)]
            public object Pedido_Produtos { get; set; }

        }


        #region IValidatable Members

        public bool Validate(EntityState state)
        {
            if (state != EntityState.Deleted)
            {
                if (Dt_Cadastro == null) Dt_Cadastro = DateTime.Today;
            }

            return string.IsNullOrEmpty(ExceptionMessage);
        }

        public string ExceptionMessage{get;set;}
        
        #endregion
    }

}
